package cn.openea.perpartner.link.web.service;

import cn.openea.perpartner.link.constant.enums.AppType;
import cn.openea.perpartner.link.web.entity.ShareLinkConfig;
import cn.openea.perpartner.link.web.entity.vo.AddShareLinkConfigVo;
import cn.openea.perpartner.link.web.entity.vo.ShareLinkSearchVo;
import com.baomidou.mybatisplus.extension.service.IService;
import lombok.NonNull;

import java.util.List;

/**
 * @author ysk
 * @email zane_ysk@qq.com
 * @date 2023-05-21 23:45:18
 */
public interface IShareLinkConfigService extends IService<ShareLinkConfig> {

    /**
     * 查询分享链接列表
     */
    List<ShareLinkConfig> findListBySearchVo(ShareLinkSearchVo shareLinkSearchVo);

    ShareLinkConfig findByAppTypeAndName(@NonNull AppType appType, String name);

    /**
     * 新增分享链接
     */
    void addShareLinkConfig(AddShareLinkConfigVo addVo);

    /**
     * 修改分享链接
     */
    void updateShareLinkConfig(@NonNull AddShareLinkConfigVo addVo, @NonNull ShareLinkConfig oldShareLinkConfig);

    ShareLinkConfig findOneByKey(String key);

    void updateVisitsNum(Long id, Integer visitsNum);

    /**
     * 最后不要根据Id去删除，而是根据key去删除，因为有缓存
     *
     * @param key
     */
    void deleteByKey(String key);
}

